package online.sh.cn.fy.common.utils;

import net.sf.json.JSONObject;

public class PackageUtil {
	public static WxUtils wx=new WxUtils();
	public static TokenUtils tut=new TokenUtils();
	
	//获取sh认证url
	public static String getshUrl(String token,String checkurl){
		String result="";
		JSONObject jsonuser=JSONObject.fromObject(wx.getshURL(token, checkurl));
		if (null!=jsonuser) {
			if (jsonuser.get("status").equals(200)) {
				result=jsonuser.getString("redirect");
			}else{
				JSONObject jsontoken=JSONObject.fromObject(wx.getshToken());
				if (null!=jsontoken) {
					if (jsontoken.get("status").equals(200)) {
						tut.updateshAccessToken(jsontoken.get("data").toString());
						result=JSONObject.fromObject(wx.getshURL(jsontoken.get("data").toString(), checkurl)).get("redirect").toString();
					}
				}
			}
			return result;
		}else{
			return result;
		}
	}
	
	//获取shopenid
	public static String getshOpenid(String token,String shcode){
		String result="";
		JSONObject jsonuser=JSONObject.fromObject(wx.getshOpenid(token,shcode));
		if (null!=jsonuser) {
			if (jsonuser.get("status").equals(200)) {
				result=jsonuser.getString("openid");
			}else{
				JSONObject jsontoken=JSONObject.fromObject(wx.getshToken());
				if (null!=jsontoken) {
					if (jsontoken.get("status").equals(200)) {
						tut.updateshAccessToken(jsontoken.get("data").toString());
						result=JSONObject.fromObject(wx.getshOpenid(jsontoken.get("data").toString(), shcode)).get("openid").toString();
					}
				}
			}
			return result;
		}else{
			return result;
		}
	}
	
	//设备绑定  0代表绑定成功，1代表设备获取异常或绑定失败，2代表其他（token异常）
	public static String sendshMoblie(String token,String openid,String deviceno){
		String result="";
		JSONObject jsonuser=JSONObject.fromObject(wx.sendMesg(token, openid, deviceno));
//		System.out.println(jsonuser.toString());
		if (null!=jsonuser) {
			if (jsonuser.get("status").equals(200) || jsonuser.get("status").equals(201)) {
				result="绑定成功或者已绑定";						
			}else if(jsonuser.get("status").equals(202) || jsonuser.get("status").equals(4005)){
				result="设备获取异常或绑定失败";
			}else{
				JSONObject jsontoken=JSONObject.fromObject(wx.getshToken());
				if (null!=jsontoken) {
					if (jsontoken.get("status").equals(200)) {
						tut.updateshAccessToken(jsontoken.get("data").toString());
						result=JSONObject.fromObject(wx.sendMesg(jsontoken.get("data").toString(), openid,deviceno)).get("status").toString();
						if (result.equals("200") || result.equals("201")) {
							result="绑定成功或者已绑定";
						}
					}
				}
			}
			return result;
		}else{
			return result;
		}
	}
}
